Skip to main content
`Ctrl`+`K`

# ng911ok.lib.accessor module

exception InconsistentParityError

  Bases: `Exception`

exception InvertedAddressRangeError(from_addr: int, to_addr: int)

  Bases: `Exception`

exception NGUIDFormatError(invalid_nguid: str, problem: Literal['ERROR:DOMAIN:INVALID_VALUE', 'ERROR:GENERAL:INVALID_VALUE', 'ERROR:GENERAL:MANDATORY_IS_NULL', 'ERROR:GENERAL:MANDATORY_IS_BLANK', 'ERROR:GENERAL:NOT_UPPERCASE', 'ERROR:GENERAL:UNIQUENESS', 'WARNING:GENERAL:LEADING_TRAILING_SPACE', 'ERROR:NGUID:FORMAT', 'ERROR:NGUID:V2_FORMAT', 'ERROR:NGUID:AGENCY', 'ERROR:NGUID:LAYER', 'ERROR:NGUID:DUPLICATE', 'ERROR:ADDRESS:DUPLICATE', 'ERROR:ADDRESS_RANGE:OVERLAP', 'ERROR:ADDRESS_RANGE:DECREASING', 'ERROR:ROAD_ESN:DEVIATION', 'ERROR:ROAD_ESN:CROSSING', 'ERROR:ROAD_ESN:OUT_OF_BOUNDS', 'ERROR:PARITY:EXPECTED_ZERO', 'ERROR:PARITY:EXPECTED_NONZERO', 'ERROR:PARITY:MISMATCH', 'ERROR:PARITY:INVALID', 'ERROR:PARITY:NULL', 'ERROR:LEGACY:MISMATCH', 'ERROR:GEOCODE:UNKNOWN_MATCH', 'ERROR:GEOCODE:WRONG_SIDE', 'ERROR:GEOCODE:BOTH_SIDES', 'ERROR:GEOCODE:WRONG_COMMUNITY', 'ERROR:GEOCODE:OUT_OF_RANGE', 'ERROR:GEOCODE:NAME_MISMATCH', 'ERROR:CONSISTENCY:ADDRESS_ESN', 'ERROR:CONSISTENCY:ROAD_ESN', 'ERROR:CONSISTENCY:COMMUNITY', 'WARNING:CONSISTENCY:ROAD_LEVEL', 'WARNING:CONSISTENCY:ROAD_ESN', 'ERROR:GEOMETRY:TOPOLOGY', 'WARNING:GEOMETRY:CUTBACK', 'WARNING:GEOMETRY:SHORT_SEGMENT', 'NOTICE:CONSISTENCY:ROAD_ESN'], details: str | None = None, piece: Literal['LAYER', 'LOCAL_ID', 'AGENCY_ID'] | None = None)

  Bases: `ValueError`

  _raw_details: str | None
  details: str
  invalid_nguid: str
  problem: Literal['ERROR:DOMAIN:INVALID_VALUE', 'ERROR:GENERAL:INVALID_VALUE', 'ERROR:GENERAL:MANDATORY_IS_NULL', 'ERROR:GENERAL:MANDATORY_IS_BLANK', 'ERROR:GENERAL:NOT_UPPERCASE', 'ERROR:GENERAL:UNIQUENESS', 'WARNING:GENERAL:LEADING_TRAILING_SPACE', 'ERROR:NGUID:FORMAT', 'ERROR:NGUID:V2_FORMAT', 'ERROR:NGUID:AGENCY', 'ERROR:NGUID:LAYER', 'ERROR:NGUID:DUPLICATE', 'ERROR:ADDRESS:DUPLICATE', 'ERROR:ADDRESS_RANGE:OVERLAP', 'ERROR:ADDRESS_RANGE:DECREASING', 'ERROR:ROAD_ESN:DEVIATION', 'ERROR:ROAD_ESN:CROSSING', 'ERROR:ROAD_ESN:OUT_OF_BOUNDS', 'ERROR:PARITY:EXPECTED_ZERO', 'ERROR:PARITY:EXPECTED_NONZERO', 'ERROR:PARITY:MISMATCH', 'ERROR:PARITY:INVALID', 'ERROR:PARITY:NULL', 'ERROR:LEGACY:MISMATCH', 'ERROR:GEOCODE:UNKNOWN_MATCH', 'ERROR:GEOCODE:WRONG_SIDE', 'ERROR:GEOCODE:BOTH_SIDES', 'ERROR:GEOCODE:WRONG_COMMUNITY', 'ERROR:GEOCODE:OUT_OF_RANGE', 'ERROR:GEOCODE:NAME_MISMATCH', 'ERROR:CONSISTENCY:ADDRESS_ESN', 'ERROR:CONSISTENCY:ROAD_ESN', 'ERROR:CONSISTENCY:COMMUNITY', 'WARNING:CONSISTENCY:ROAD_LEVEL', 'WARNING:CONSISTENCY:ROAD_ESN', 'ERROR:GEOMETRY:TOPOLOGY', 'WARNING:GEOMETRY:CUTBACK', 'WARNING:GEOMETRY:SHORT_SEGMENT', 'NOTICE:CONSISTENCY:ROAD_ESN']
  property validation_message: str

    Returns a single-line string suitable for writing to a validation error table.

class AddressRange(from_addr: int, to_addr: int, parity: Parity, suppress_errors: bool = False)

  Bases: `object`

  classmethod auto_fix_directionality(from_addr: int, to_addr: int, parity: Parity, suppress_errors: bool = False) → Self
  classmethod from_set(set_: set[int], parity: Parity)
  classmethod zero() → Self
  _validate() → bool
  overlaps(other: Self) → bool
  to_array() → ndarray
  to_set() → set[int]

    Returns a `set` containing all integers of appropriate parity between `from_addr` and `to_addr`, inclusive. If parity is zero, an empty set is returned.

  property details: str

    Returns a more detailed informational string than `__str__()`.

  property directionality: Directionality
  property directionality_is_valid: bool

    Returns `True` if the instance’s `directionality` is `INCREASING`, `SINGLE`, or `ZERO`. Otherwise, returns `False`.

  from_addr: int
  property is_valid: bool
  parity: Parity
  suppress_errors: bool
  to_addr: int

class Directionality(value)

  Bases: `StrEnum`

  Represents the directionality of an address range.

  _generate_next_value_(start, count, last_values)

    Return the lower-cased version of the member name.

  DECREASING = 'Decreasing'

    Represents an address range where the to-address is lower than the from-address.

  INCREASING = 'Increasing'

    Represents an address range where the to-address is higher than the from-address.

  SINGLE = 'Single'

    Represents an address range where the from-address and to-address are equal and non-zero.

  ZERO = 'Zero'

    Represents an address range where the parity is `Parity.ZERO`.

class NG911Accessor(pandas_obj: DataFrame)

  Bases: `object`

  address_range_left(suppress_errors=False, auto_fix_directionality=False) → Series
  address_range_right(suppress_errors=False, auto_fix_directionality=False) → Series
  property address_parity: Series
  property directionality_left: Series
  property directionality_right: Series
  property parity_left: Series
  property parity_right: Series

class NG911SeriesAccessor(pandas_obj: Series)

  Bases: `object`

  property field: NG911Field

class NGUID(layer: str, local_id, agency_id: str)

  Bases: `object`

  classmethod _diagnose_v3(string: str) → NGUIDFormatError

    Method to attempt to diagnose the specific format violation of (what should be) a v3 NGUID.

    Parameters:

      string (str) – The v3 NGUID string in violation

    Returns:

      Exception to analyze and/or raise

    Return type:

      NGUIDFormatError

  classmethod from_string(string: str) → Self
  classmethod from_v2_string(string: str) → Self
  classmethod validate_string(string: str) → NGUIDFormatError | None

    Validates the format of an NGUID string.

    Parameters:

      string (str) – NGUID to validate

    Returns:

      `None` if the NGUID is valid, otherwise, an instance of `NGUIDFormatError`

    Return type:

      NGUIDFormatError | None

  AGENCYID_PATTERN: ClassVar[Pattern] = re.compile('[A-Za-z\\d][A-Za-z\\d-]*(?:\\.[A-Za-z\\d][A-Za-z\\d-]*)+')
  LAYER_PATTERN: ClassVar[Pattern] = re.compile('[A-Za-z_]\\w*')
  LOCALID_PATTERN: ClassVar[Pattern] = re.compile('[\\w\\(\\)\\[\\]\\{\\}-]+')
  NGUID_PATTERN: ClassVar[Pattern] = re.compile('urn:emergency:uid:gis:([A-Za-z_]\\w*):([\\w\\(\\)\\[\\]\\{\\}-]+):([A-Za-z\\d][A-Za-z\\d-]*(?:\\.[A-Za-z\\d][A-Za-z\\d-]*)+)')
  V2_LOCALID_PATTERN: ClassVar[Pattern] = re.compile('[\\x20-\\x39\\x3b-\\x3f\\x41-\\x7e]+')
  V2_NGUID_PATTERN: ClassVar[Pattern] = re.compile('^([A-Za-z_]\\w*)_([\\x20-\\x39\\x3b-\\x3f\\x41-\\x7e]+)@([A-Za-z\\d][A-Za-z\\d-]*(?:\\.[A-Za-z\\d][A-Za-z\\d-]*)+)$')
  agency_id: str
  property feature_class: NG911FeatureClass
  layer: str
  local_id: str
  property nguid_field: NG911Field